home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / mf / inputs / dc / dxcligtb.mf < prev    next >
Text File  |  1994-04-12  |  6KB  |  224 lines

  1. % This is DXCLIGTB.MF in text format, as of March 24, 1992
  2. %
  3. % DC fonts Version 1.1 (prerelease of EC fonts)
  4. %
  5. %          [ heavily borrowed from the Computer Modern Roman family of
  6. %            fonts by D. E. Knuth ]
  7. %
  8. % Content:
  9. %
  10. %  ligatures and kerning for "caps and small caps" fonts
  11. %
  12.  
  13.  
  14. %
  15. %
  16. %  This file should not be called for monospaced fonts !
  17. %
  18. %
  19. %  The following ligatures are integrated:
  20. %
  21. %   --
  22. %   ---
  23. %
  24. %   >>
  25. %   <<
  26. %
  27. %   ``
  28. %   ''
  29. %   ,,
  30. %
  31.  ligtable
  32.     "-":  "-" =: oct"025";
  33.  ligtable
  34.     oct"025": "-"=:oct"026";  % "---"  => emdash
  35.  
  36.  ligtable "<": "<" =: oct"023";     % "<<"
  37.  ligtable ">": ">" =: oct"024";     % ">>"
  38.  ligtable ",": "," =: oct"022";     % ",,"
  39. %
  40. %
  41. def lig_o_table (expr k) =
  42.              "o" kern k,  oct"256" kern k, oct"362" kern k, oct"363" kern k,
  43.                           oct"364" kern k, oct"365" kern k, oct"366" kern k,
  44.                           oct"367" kern k
  45. enddef;
  46. def lig_co_table =
  47.              "o":  oct"256": oct"362": oct"363":
  48.                           oct"364": oct"365": oct"366":
  49.                           oct"367"
  50. enddef;
  51. %
  52. %
  53. def lig_a_table (expr k) =
  54.            "a" kern k,    oct"241" kern k, oct"242" kern k, oct"340" kern k,
  55.                           oct"341" kern k, oct"342" kern k,
  56.                           oct"343" kern k, oct"344" kern k, oct"345" kern k,
  57.                           oct"346" kern k
  58. enddef;
  59. def lig_A_table (expr k) =
  60.              "A" kern k, oct"200" kern k, oct"201" kern k, oct"300" kern k,
  61.               oct"301" kern k, oct"302" kern k,
  62.               oct"303" kern k, oct"304" kern k, oct"305" kern k
  63. enddef;
  64. def lig_ca_table =
  65.            "a":    oct"241": oct"242": oct"340":
  66.                           oct"341": oct"342":
  67.                           oct"343": oct"344": oct"345":
  68.                           oct"346"
  69. enddef;
  70. def lig_c_table (expr k) =
  71.            "c" kern k,   oct"242" kern k, oct"243" kern k, oct"347" kern k
  72. enddef;
  73. def lig_C_table (expr k) =
  74.            "C" kern k, oct"202" kern k, oct"203" kern k, oct"307" kern k
  75. enddef;
  76. %
  77. def lig_e_table (expr k)=
  78.              "e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
  79.                          oct"351" kern k, oct"352" kern k, oct"353" kern k
  80. enddef;
  81. def lig_u_table (expr k)=
  82.              "u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
  83.                          oct"372" kern k, oct"373" kern k, oct"374" kern k
  84. enddef;
  85. %
  86. def lig_cA_table =
  87.              "A": oct"200": oct"201": oct"300": oct"301": oct"302":
  88.              oct"303": oct"304": oct"305"
  89. enddef;
  90. def lig_cO_table =
  91.              "O": oct"216": oct"322": oct"323": oct"324": oct"325":
  92.                   oct"326": oct"330"
  93. enddef;
  94. def lig_O_table (expr k) =
  95.          "O" kern k,
  96.                   oct"216" kern k,  oct"322" kern k,  oct"323" kern k,
  97.                   oct"324" kern k,  oct"325" kern k,
  98.                   oct"326" kern k,  oct"330" kern k
  99. enddef;
  100. def lig_U_table (expr k) =
  101.          "U" kern k, oct"226" kern k, oct"227" kern k, oct"331" kern k,
  102.                      oct"332" kern k, oct"333" kern k, oct"334" kern k
  103. enddef;
  104.  
  105. %
  106. %
  107. %
  108. %
  109.  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
  110.  
  111.  
  112.  ligtable
  113.         "P":
  114.         "T":
  115.         "Y":    "a" kern kk#,
  116.                 lig_A_table(kk#);
  117.  ligtable
  118.         "F":
  119.         "V":
  120.         "W":
  121.                 if serifs:
  122.                 lig_a_table(kkk#),
  123.                 lig_A_table(kkk#),
  124.                 else:
  125.                 lig_a_table(kk#),
  126.                 lig_A_table(kk#),
  127.                 fi
  128.         "K":
  129.         "X":    lig_o_table(k#),
  130.                 lig_O_table(k#),
  131.                 lig_c_table(k#),
  132.                 lig_C_table(k#),
  133.                 "g" kern k#, oct"247" kern k#,
  134.                 "G" kern k#, oct"207" kern k#,
  135.                 "q" kern k#,
  136.                 "Q" kern k#;
  137.  ligtable
  138.         "O":
  139.         "D":    "x" kern k#,
  140.                 "X" kern k#,
  141.                 "w" kern k#,
  142.                 "W" kern k#,
  143.                 lig_a_table(k#),
  144.                 lig_A_table(k#),
  145.                 "v" kern k#,
  146.                 "V" kern k#,
  147.                 "y" kern k#, oct"375" kern k#, oct"270" kern k#,
  148.                 "Y" kern k#, oct"335" kern k#, oct"230" kern k#;
  149.  ligtable
  150.         lig_cA_table:
  151.                 if serifs:
  152.                 "R":
  153.                 fi
  154.                 lig_c_table(k#),
  155.                 lig_C_table(k#),
  156.                 lig_o_table(k#),
  157.                 lig_O_table(k#),
  158.                 "g" kern k#,  oct"247" kern k#,
  159.                 "G" kern k#,  oct"207" kern k#,
  160.                 lig_u_table(k#),
  161.                 lig_U_table(k#),
  162.                 "q" kern k#,
  163.                 "Q" kern k#,
  164.         "L":
  165.                 "T" kern kk#, oct"224" kern kk#, oct"225" kern kk#,
  166.                 "t" kern kk#, oct"264" kern kk#, oct"265" kern kk#,
  167.                 "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
  168.                 "y" kern kk#, oct"270" kern kk#, oct"375" kern kk#,
  169.                 "V" kern kkk#,
  170.                 "v" kern kkk#,
  171.                 "W" kern kkk#,
  172.                 "w" kern kkk#;
  173.  ligtable
  174.         "I":
  175.                 "I" kern -k#; % Richard III
  176.  
  177. if not monospace:
  178.  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
  179.  
  180.  ligtable
  181.         "p":
  182.         "t":
  183.         "y":    lig_a_table(kk#);
  184.  ligtable
  185.         "f":
  186.         "v":
  187.         "w":
  188.                 if serifs:
  189.                 lig_a_table(kkk#)
  190.                 else:
  191.                 lig_a_table(kk#)
  192.                 fi,
  193.         "k":
  194.         "x":    lig_o_table(k#),
  195.                 lig_c_table(k#),
  196.                 "g" kern k#, oct"247" kern k#,
  197.                 "q" kern k#;
  198.  ligtable
  199.         lig_co_table:
  200.         "d":    "x" kern k#,
  201.                 "w" kern k#,
  202.                 lig_a_table(k#),
  203.                 "v" kern k#,
  204.                 "y" kern k#, oct"270" kern k#, oct"375" kern k#;
  205.  ligtable
  206.         lig_ca_table:
  207.                 if serifs: "r": fi
  208.                 lig_c_table(k#),
  209.                 lig_o_table(k#),
  210.                 "g" kern k#, oct"247" kern k#,
  211.                 lig_u_table(k#),
  212.                 "q" kern k#,
  213.         "l":    "'" kern kk#,
  214.                 "t" kern kk#,  oct"264" kern kk#, oct"265" kern kk#,
  215.                 "y" kern kk#,  oct"270" kern k#, oct"375" kern k#,
  216.                 "v" kern kkk#,
  217.                 "w" kern kkk#;
  218.  ligtable
  219.         "i":    "i" kern -k#;
  220. fi % skiing
  221.  
  222.  
  223. endinput;
  224.